/**
 * 测试研发项目创建功能
 * 使用优化后的项目数据结构
 */
 
const cloud = require('wx-server-sdk');

// 初始化云环境
try {
    cloud.init({
        env: process.env.TCB_ENV || cloud.DYNAMIC_CURRENT_ENV
    });
} catch (e) {
    console.error('初始化云环境失败:', e);
}

/**
 * 测试创建研发项目
 */
async function testCreateProject() {
    console.log('=== 开始测试创建研发项目(使用优化数据结构) ===');
    
    try {
        // 引入ResearchProjectModel
        const ResearchProjectModel = require('./project/oa/model/research_project_model.js');
        const model = new ResearchProjectModel();
        
        // 获取当前时间戳
        const now = Math.floor(Date.now() / 1000);
        
        // 创建测试数据 - 使用优化后的数据结构
        const testData = {
            // 1. 基础标识信息
            projectCode: `PRJ-TEST-${now}`,
            projectTitle: '测试项目-' + now,
            name: '测试项目-' + now,
            model: 'XR2000',
            
            // 2. 分类与描述信息
            projectType: 1,
            projectTypeName: '硬件项目',
            category: '研发',
            applicationType: '电机控制',
            description: '这是一个测试项目',
            
            // 3. 人员信息
            // 客户信息
            customerName: '测试客户',
            // 申请人信息
            applicantId: 'test_user',
            applicantName: '测试用户',
            // 项目人员信息
            projectManagerId: 'test_manager',
            projectManagerName: '测试经理',
            teamMembers: ['member1', 'member2'],
            
            // 4. 项目管理和状态信息
            // 状态层级信息
            level1: 1,
            level2: 'director',
            level3: '',
            level4: '',
            statusDesc: '项目审核 > 董事长',
            // 项目管理
            priority: 'normal',
            progress: 0,
            
            // 5. 时间信息
            // 系统时间
            createTime: now,
            updateTime: now,
            // 项目时间点
            startDate: now,
            endDate: now + 90 * 24 * 60 * 60,
            deadline: now + 30 * 24 * 60 * 60,
            // 计划时间点
            planStartDate: now,
            planEndDate: now + 30 * 24 * 60 * 60,
            // 状态时间点
            stateTime: now,
            stateExpireTime: 0,
            
            // 6. 基础信息
            hasSample: '否',
            sampleImages: [],
            
            // 7. 特有参数信息 - 电机控制类项目特有字段
            // 基本参数
            workTemp: '-20~50℃',
            certification: 'CE,ROHS',
            lowPower: '是',
            startupTime: '1秒',
            conformalCoating: '是',
            
            // 电机基本参数
            ratedVoltage: '220V',
            maxPower: '1000W',
            maxSpeed: '5000rpm',
            polePairs: '4',
            hasHall: '有',
            hasBrake: '无'
        };
        
        // 执行创建
        console.log('准备插入项目数据:', testData);
        
        // 使用优化的接口创建项目
        const db = cloud.database();
        const collection = db.collection('research_project');
        
        // 插入数据
        const result = await collection.add({
            data: testData
        });
        
        console.log('项目创建成功，ID:', result._id);
        console.log('=== 测试完成 ===');
        
        return {
            success: true,
            id: result._id
        };
    } catch (error) {
        console.error('测试失败:', error);
        return {
            success: false,
            error: error.message
        };
    }
}

// 云函数入口函数
module.exports = async function(event, context) {
    console.log('接收到测试请求:', event);
    
    const action = event.action || 'create_project';
    
    switch (action) {
        case 'create_project':
            return await testCreateProject();
        default:
            return {
                success: false,
                error: '未知测试命令'
            };
    }
};

// 如果直接运行此脚本，执行测试
if (require.main === module) {
    console.log('直接执行测试脚本');
    testCreateProject().then(result => {
        console.log('测试结果:', result);
    }).catch(error => {
        console.error('测试出错:', error);
    });
} 